Review Transfer (Non OnTheFly Corporate)
The Review Transfer API enables to review and convert the transaction inputs into MT103 file.
Method: POST
{{URL}}/jsonrpc
Headers
Name | Value |
---|---|
Content-Type | application/json |
Example
Payload Parameters
Parameter | Description |
---|---|
id Mandatory | String Unique ID of request Example – "1" |
method Mandatory | String Method Name Example – "VisaService.ReviewTransfer" |
params | Object |
api | Object |
credential Mandatory | String API credential provided by NetXD Example – "Basic cy5wYXJhbWVzd2FyYW4rMkBiYW5rY2J3Lm9yZzpUZXN0QDEyMzQ=" |
signature Mandatory | String Signature of the digitally signed payload Example – "MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA==" |
payload | Object |
creationDateTime Mandatory | String Date and time of transaction Example – "2024-03-01T05:42:01.473Z" |
endToEndIdentification Mandatory | String Unique identification number to trace the transaction Example – "R16860382239934" |
companyId Conditional Mandatory (Mandatory if debtor accountNumber is not provided) | String Unique identification of the company Example – "658bcbe121dc6c32ec0120a2" |
paymentPurpose Conditional Mandatory (Based on Country and currency) | String Purpose of payment Example – "POP" |
paymentPurposeCode Conditional Mandatory (Based on Country and Currency) | String Code to identify the purpose of payment Example – "548 " |
creditorAgentIBAN Conditional Mandatory (Based on Country and Currency) | String International Account number of creditor's bank or financial institution Example – "AZ21NABZ00000000137010001944" |
creditorAgentTaxID Conditional Mandatory (Based on Country and Currency) | String Tax identification number of creditor's bank or financial institution Example – "2342412312" |
description Optional | String Description if required Example – "book" |
chargeBearer Optional | String Indicates the party responsible for covering charges Example – "DEBT" |
instructedAmount | Object |
amount Mandatory | String Instructed amount Example – "120" |
currency Mandatory | String Instructed currency Example – "DZD" |
creditorAgent | Object |
bic Conditional Mandatory (Based on Country and currency) | String BIC of the creditor agent Example – "BALGDZAPXXX" |
bid Optional | String Bank identification number of the creditor agent Example – "43214321" |
clearingMemberId Conditional Mandatory (Based on Country and currency) | String Clearing member Identifier Example – "FW123456789" |
branchId Conditional Mandatory (Based on Country and currency) | String Branch identification number Example – "A1BCD1234ABCD1234A1B2C3D41234ABC123" |
branchName Conditional Mandatory (Based on Country and currency) | String Branch name Example – "USBANK" |
creditorAccount | Object |
name Optional | String Creditor name Example – "John deo" |
accountNumber Conditional Mandatory (Based on Country and currency) | String Creditor account number Example – "34534654634534534654" |
iban Conditional Mandatory (Based on Country and currency) | String Creditor IBAN Example – "SA0380000000608010167519" |
address Optional | String Creditor address Example – "2365 Tetrick Road" |
phoneNumber Conditional Mandatory (Based on Country and currency) | String Creditor phone number Example – "+9-46363463453" |
taxId Conditional Mandatory (Based on Country and currency) | String Tax identification number Example – "Test12345" |
taxIndicator Optional | String Tax indication code Example – "INC" |
contactName Conditional Mandatory (Based on Country and Currency) | String Contact name for inquiries related to the account Example – "John" |
debtorAccount | Object |
structuredRemittance | Array |
invoiceNotes Optional | String Additional notes related to the payment Example – "Payment as agreed" |
invoiceNumber Optional | String Invoice number associated with the payment Example – "123" |
poNumber Optional | String PO number associated with the payment Example – "321" |
partialPayment Optional | String Indicates whether the payment is partial or not Example – false |
- cURL
- C#
- Go
- NodeJs
curl --location --globoff '{{URL}}/jsonrpc' \
--header 'Content-Type: application/json' \
--data '{"id":"1","method":"VisaService.ReviewTransfer","params":{"api":{"credential":"Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5","signature":"MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA=="},"payload":{"creationDateTime":"2024-03-01T05:42:01.473Z","endToEndIdentification":"R16860382239934","companyId": "658bcbe121dc6c32ec0120a2","paymentPurpose":"POP","paymentPurposeCode":"548","creditorAgentIBAN":"AZ21NABZ00000000137010001944","creditorAgentTaxID":"2342412312","description":"book","chargeBearer":"DEBT","instructedAmount":{"amount":"120","currency":"DZD"},"creditorAgent":{"bic":"BALGDZAPXXX","bid":"43214321","clearingMemberId":"FW123456789","branchId":"A1BCD1234ABCD1234A1B2C3D41234ABC123","branchName":"USBANK"},"creditorAccount":{"name":"John deo","accountNumber":"34534654634534534654","iban":"SA0380000000608010167519","address":"2365 Tetrick Road","phoneNumber":"+9-46363463453","taxId":"Test12345","taxIndicator":"INC","contactName":"John"},"debtorAccount":{},"structuredRemittance":[{"invoiceNotes":"Payment as agreed","invoiceNumber":"123","poNumber":"321","partialPayment":false}]}}}'
var options = new RestClientOptions("{{URL}}/jsonrpc")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@" ""id"": ""1"",
" + "\n" +
@" ""method"": ""VisaService.ReviewTransfer"",
" + "\n" +
@" ""params"": {
" + "\n" +
@" ""api"": {
" + "\n" +
@" ""credential"": ""Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5"",
" + "\n" +
@" ""signature"": ""MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA==""
" + "\n" +
@" },
" + "\n" +
@" ""payload"": {
" + "\n" +
@" ""creationDateTime"": ""2024-03-01T05:42:01.473Z"",
" + "\n" +
@" ""endToEndIdentification"": ""R16860382239934"",
" + "\n" +
@" ""companyId"": ""658bcbe121dc6c32ec0120a2"",
" + "\n" +
@" ""paymentPurpose"": ""POP"",
" + "\n" +
@" ""paymentPurposeCode"":""548"",
" + "\n" +
@" ""creditorAgentIBAN"":""AZ21NABZ00000000137010001944"",
" + "\n" +
@" ""creditorAgentTaxID"":""2342412312"",
" + "\n" +
@" ""description"": ""book"",
" + "\n" +
@" ""chargeBearer"": ""DEBT"",
" + "\n" +
@" ""instructedAmount"": {
" + "\n" +
@" ""amount"": ""120"",
" + "\n" +
@" ""currency"": ""DZD""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAgent"": {
" + "\n" +
@" ""bic"": ""BALGDZAPXXX"",
" + "\n" +
@" ""bid"": ""43214321"",
" + "\n" +
@" ""clearingMemberId"": ""FW123456789"",
" + "\n" +
@" ""branchId"": ""A1BCD1234ABCD1234A1B2C3D41234ABC123"",
" + "\n" +
@" ""branchName"": ""USBANK""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAccount"": {
" + "\n" +
@" ""name"": ""John deo"",
" + "\n" +
@" ""accountNumber"": ""34534654634534534654"",
" + "\n" +
@" ""iban"": ""SA0380000000608010167519"",
" + "\n" +
@" ""address"": ""2365 Tetrick Road"",
" + "\n" +
@" ""phoneNumber"": ""+9-46363463453"",
" + "\n" +
@" ""taxId"": ""Test12345"",
" + "\n" +
@" ""taxIndicator"": ""INC"",
" + "\n" +
@" ""contactName"":""John""
" + "\n" +
@" },
" + "\n" +
@" ""debtorAccount"": {
" + "\n" +
@" },
" + "\n" +
@" ""structuredRemittance"": [
" + "\n" +
@" {
" + "\n" +
@" ""invoiceNotes"": ""Payment as agreed"",
" + "\n" +
@" ""invoiceNumber"": ""123"",
" + "\n" +
@" ""poNumber"": ""321"",
" + "\n" +
@" ""partialPayment"": false
" + "\n" +
@" }
" + "\n" +
@" ]
" + "\n" +
@" }
" + "\n" +
@" }
" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "{{URL}}/jsonrpc"
method := "POST"
payload := strings.NewReader(`{`+"
"+`
"id": "1",`+"
"+`
"method": "VisaService.ReviewTransfer",`+"
"+`
"params": {`+"
"+`
"api": {`+"
"+`
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",`+"
"+`
"signature": "MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA=="`+"
"+`
},`+"
"+`
"payload": {`+"
"+`
"creationDateTime": "2024-03-01T05:42:01.473Z",`+"
"+`
"endToEndIdentification": "R16860382239934",`+"
"+`
"companyId": "658bcbe121dc6c32ec0120a2",`+"
"+`
"paymentPurpose": "POP",`+"
"+`
"paymentPurposeCode":"548",`+"
"+`
"creditorAgentIBAN":"AZ21NABZ00000000137010001944",`+"
"+`
"creditorAgentTaxID":"2342412312",`+"
"+`
"description": "book",`+"
"+`
"chargeBearer": "DEBT",`+"
"+`
"instructedAmount": {`+"
"+`
"amount": "120",`+"
"+`
"currency": "DZD"`+"
"+`
},`+"
"+`
"creditorAgent": {`+"
"+`
"bic": "BALGDZAPXXX",`+"
"+`
"bid": "43214321",`+"
"+`
"clearingMemberId": "FW123456789",`+"
"+`
"branchId": "A1BCD1234ABCD1234A1B2C3D41234ABC123",`+"
"+`
"branchName": "USBANK"`+"
"+`
},`+"
"+`
"creditorAccount": {`+"
"+`
"name": "John deo",`+"
"+`
"accountNumber": "34534654634534534654",`+"
"+`
"iban": "SA0380000000608010167519",`+"
"+`
"address": "2365 Tetrick Road",`+"
"+`
"phoneNumber": "+9-46363463453",`+"
"+`
"taxId": "Test12345",`+"
"+`
"taxIndicator": "INC",`+"
"+`
"contactName":"John"`+"
"+`
},`+"
"+`
"debtorAccount": {`+"
"+`
},`+"
"+`
"structuredRemittance": [`+"
"+`
{`+"
"+`
"invoiceNotes": "Payment as agreed",`+"
"+`
"invoiceNumber": "123",`+"
"+`
"poNumber": "321",`+"
"+`
"partialPayment": false`+"
"+`
}`+"
"+`
]`+"
"+`
}`+"
"+`
}`+"
"+`
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': '{{URL}}',
'path': '/jsonrpc',
'headers': {
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"id": "1",
"method": "VisaService.ReviewTransfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA=="
},
"payload": {
"creationDateTime": "2024-03-01T05:42:01.473Z",
"endToEndIdentification": "R16860382239934",
"companyId": "658bcbe121dc6c32ec0120a2",
"paymentPurpose": "POP",
"paymentPurposeCode": "548",
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",
"creditorAgentTaxID": "2342412312",
"description": "book",
"chargeBearer": "DEBT",
"instructedAmount": {
"amount": "120",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"bid": "43214321",
"clearingMemberId": "FW123456789",
"branchId": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"branchName": "USBANK"
},
"creditorAccount": {
"name": "John deo",
"accountNumber": "34534654634534534654",
"iban": "SA0380000000608010167519",
"address": "2365 Tetrick Road",
"phoneNumber": "+9-46363463453",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName": "John"
},
"debtorAccount": {},
"structuredRemittance": [
{
"invoiceNotes": "Payment as agreed",
"invoiceNumber": "123",
"poNumber": "321",
"partialPayment": false
}
]
}
}
});
req.write(postData);
req.end();
Body
{
"id": "1",
"method": "VisaService.ReviewTransfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "MEQCICSDF4HIunb4xDLVEK9IOJYhT6j4wq5FwfJILSb4xbeSAiBdmpkV7uPB+39O6S+ea/61ar3dBmBNSU9ay229vin7sA=="
},
"payload": {
"creationDateTime": "2024-03-01T05:42:01.473Z",
"endToEndIdentification": "R16860382239934",
"companyId": "658bcbe121dc6c32ec0120a2",
"paymentPurpose": "POP",
"paymentPurposeCode":"548",
"creditorAgentIBAN":"AZ21NABZ00000000137010001944",
"creditorAgentTaxID":"2342412312",
"description": "book",
"chargeBearer": "DEBT",
"instructedAmount": {
"amount": "120",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"bid": "43214321",
"clearingMemberId": "FW123456789",
"branchId": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"branchName": "USBANK"
},
"creditorAccount": {
"name": "John deo",
"accountNumber": "34534654634534534654",
"iban": "SA0380000000608010167519",
"address": "2365 Tetrick Road",
"phoneNumber": "+9-46363463453",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName":"John"
},
"debtorAccount": {},
"structuredRemittance": [
{
"invoiceNotes": "Payment as agreed",
"invoiceNumber": "123",
"poNumber": "321",
"partialPayment": false
}
]
}
}
}
Response: 201
Response Parameters
Parameter | Description |
---|---|
jsonrpc | String JSON RPC VERSION Example – "2.0" |
result | Object |
transaction | Object |
id | String Unique ID of transaction Example – "65e07de3d6da994f94dd3ff6" |
postingDate | String Transaction initiated date and time Example – "2024-02-29T18:21:47.035279967+05:30" |
createdDate | String Transaction created date and time Example – "2024-02-29T12:51:47.006Z" |
status | String Status of transaction Example – "IN_PROCESS" |
referenceNumber | String Reference number of transaction Example – "R1703755755718" |
debtorAgentBid | Number Bank ID of debtor bank or financial institution Example – 12345678 |
debtorAgentBic | String Bank Identifier Code of debtor bank or financial institution Example – "PNCBAT40" |
debtorEnterpriseId | String Unique identifier of the debtor's enterprise Example – "V-USA-EUR-10080373-100000001-001" |
debtorAccountNumber | String Account number of debtor Example – "1231329" |
debtorName | String Name of the debtor Example – "JP" |
creditorAgentBic | String BIC of creditor agent Example – "TCBWTH10" |
creditorEnterpriseId | String Unique identifier of the creditor's enterprise Example – "V-CAN-CAD-00000876-100007640-001" |
creditorAccountNumber | String Account number of creditor Example – "3453465463452" |
creditorName | String Creditor name Example – "sqdaf" |
creditorCountryCode | String Country code of the creditor Example – "TH" |
creditDebitIndicator | String Indicates whether credit or debit Example – "Debit" |
instructedCurrency | String Currency of transaction Example – "THB" |
instructedAmount | Number Amount of transaction Example – 1 |
instructedAmountStr | String Amount of transaction in string Example – "1" |
serviceLevel | String Service level indication Example – "STANDARD" |
paymentPurpose | String Purpose of payment Example – "jbk" |
processId | String Payment Process identifier Example – "000000000337" |
swiftFileName | String Swift file name Example – "mt103out_R1703755755718.txt" |
debtorAddress | String Address of the debtor Example – "mvn" |
creditorAddress | String Address of the creditor Example – "123" |
structuredRemittance | Null Structured remittance information related to payment Example – null |
userId | String User identifier Example – "658d4069b5c844a9ddcd9035" |
userEmailId | String User email address Example – "checker@gmail.com" |
userName | String User name Example – "jaya prakash" |
customerId | String Customer identifier Example – "65df3013bc2422fb17c97444" |
customerOrgName | String Customer organisation name that initiated transaction Example – "JP" |
bankId | String Bank identification number Example – "658c2c40a98c5ce653189e57" |
bankName | String Name of the beneficiary bank Example – "XYZ" |
riskScore | String Level of risk associated with the transaction Example – "Pending" |
visaMode | String Mode of VISA Example – "API" |
paymentMode | String Mode of transaction Example – "API" |
paymentChannelMode | String Mode of payment channel Example – "UI" |
nameScreening | Object |
watchListStatus | String Status of watchlist Example – "Pending" |
validatePayment | Object |
validateStatus | String Status of transaction validation Example – "FAILED" |
validateResponse | Object |
debtorEnterpriseId | String Enterprise identifier of debtor Example – "V-USA-EUR-10080373-100000001-001" |
creditorEnterpriseId | String Enterprise identifier of creditor Example – "V-CAN-CAD-00000876-100007640-001" |
responseList | Array |
reasonCode | String Validation response reason code Example – "Z021" |
reasonDesc | String Description if required Example – "BIC for bank in header and Debtor Agent BIC do not match." |
transactionStatusHistory | Array |
status | String Status of transaction validation Example – "Uploaded" |
createdDate | String Transaction initiated date Example – "2024-02-29T18:21:47.072721379+05:30" |
user | String Email address of user Example – "checker@gmail.com" |
requestMessage | String Request message in SWIFT Example – "1:F01PNCBAT40XXXX12341821472:I103VISAUS6SXXXXN4::20:R1703755755718:23B:CRED:32A:240229THB1:50K:/1231329JPmvn:57A:/TCBWTH10:59:/3453465463452sqdaf123:70:/POP/jbk-5:PDE:MAC:00000000" |
id | String Unique ID of request Example – "1" |
{
"jsonrpc": "2.0",
"result": {
"transaction": {
"id": "65e07de3d6da994f94dd3ff6",
"postingDate": "2024-02-29T18:21:47.035279967+05:30",
"createdDate": "2024-02-29T12:51:47.006Z",
"status": "IN_PROCESS",
"referenceNumber": "R1703755755718",
"debtorAgentBid": 12345678,
"debtorAgentBic": "PNCBAT40",
"debtorEnterpriseId": "V-USA-EUR-10080373-100000001-001",
"debtorAccountNumber": "1231329",
"debtorName": "JP",
"creditorAgentBic": "TCBWTH10",
"creditorEnterpriseId": "V-CAN-CAD-00000876-100007640-001",
"creditorAccountNumber": "3453465463452",
"creditorName": "sqdaf",
"creditorCountryCode": "TH",
"creditDebitIndicator": "Debit",
"instructedCurrency": "THB",
"instructedAmount": 1,
"instructedAmountStr": "1",
"serviceLevel": "STANDARD",
"paymentPurpose": "jbk",
"processId": "000000000337",
"swiftFileName": "mt103out_R1703755755718.txt",
"debtorAddress": "mvn",
"creditorAddress": "123",
"structuredRemittance": null,
"userId": "658d4069b5c844a9ddcd9035",
"userEmailId": "checker@gmail.com",
"userName": "jaya prakash",
"customerId": "65df3013bc2422fb17c97444",
"customerOrgName": "JP",
"bankId": "658c2c40a98c5ce653189e57",
"bankName": "XYZ",
"riskScore": "Pending",
"visaMode": "API",
"paymentMode": "API",
"paymentChannelMode": "UI",
"nameScreening": {
"watchListStatus": "Pending"
},
"validatePayment": {
"validateStatus": "FAILED",
"validateResponse": {
"debtorEnterpriseId": "V-USA-EUR-10080373-100000001-001",
"creditorEnterpriseId": "V-CAN-CAD-00000876-100007640-001",
"responseList": [
{
"reasonCode": "Z021",
"reasonDesc": " BIC for bank in header and Debtor Agent BIC do not match."
}
]
}
},
"transactionStatusHistory": [
{
"status": "Uploaded",
"createdDate": "2024-02-29T18:21:47.072721379+05:30",
"user": "checker@gmail.com"
}
],
"requestMessage": "{1:F01PNCBAT40XXXX1234182147}{2:I103VISAUS6SXXXXN}{4:\n:20:R1703755755718\n:23B:CRED\n:32A:240229THB1\n:50K:/1231329\nJP\nmvn\n:57A:/TCBWTH10\n:59:/3453465463452\nsqdaf\n123\n:70:/POP/jbk\n-}{5:{PDE:}{MAC:00000000}}"
}
},
"id": "1"
}